package pousada;

import java.io.Serializable;
import java.util.Arrays;

public class ListaQuartosConjugados implements Serializable {
	
	private static final long serialVersionUID = 1L;
	public QuartosConjugados[] quartosConjugados;
	private int numeroQuartos;
	private int capacidadeArray;
	
	public ListaQuartosConjugados() {
		capacidadeArray = 5;
		numeroQuartos=0;
		quartosConjugados = new QuartosConjugados[capacidadeArray];
	}
	
	public void inserirQuartosConjugados(QuartosConjugados quartos){
		quartosConjugados[numeroQuartos] = quartos;
		numeroQuartos++;
		checarTamanho();
	}
	
	public int getNumeroQuartosConjugados(){
		return numeroQuartos;
	}
	
	private void checarTamanho(){
		if (numeroQuartos == capacidadeArray ){
			QuartosConjugados[] temp;
			temp = new QuartosConjugados[capacidadeArray+5];
			
			for (int i = 0; i < capacidadeArray; i++){
				temp[i]= quartosConjugados[i];
			}
			
			quartosConjugados = temp;
			capacidadeArray = quartosConjugados.length; 
		}
	}
	
	
	public void removerQuartosConjugados(QuartosConjugados quartoRemovido){
		int i;
		i = 0;
		while (!quartoRemovido.equals(quartosConjugados[i])){
			i++;
		}
		numeroQuartos--;
		quartosConjugados[i] = quartosConjugados[numeroQuartos];
		quartosConjugados[numeroQuartos] = null;
	}
	
	public boolean possui(Quarto quartoConferido){
		boolean resultado;
		resultado = false;
		for (int i = 0; i < numeroQuartos ; i++){
			Quarto quarto1 = quartosConjugados[i].getQuarto1();
			Quarto quarto2 = quartosConjugados[i].getQuarto2();
			if (quarto1.equals(quartoConferido) || quarto2.equals(quartoConferido)){
				resultado = true;
			}
		}
		return resultado;
	}
	
	
	public String[] pegarIDdosQuartosConjugados(){
		String[] retorno;
		retorno = new String[numeroQuartos];
		
		for (int i = 0; i < numeroQuartos ; i++){
			retorno[i] = quartosConjugados[i].getQuarto1().ID + "/" + quartosConjugados[i].getQuarto2().ID;
		}
		
		Arrays.sort(retorno);
		
		return retorno;
	}
}
